package fiuba.algo3.persistencia;

import java.util.List;

import fiuba.algo3.Perfil;
import fiuba.algo3.XMLProcessor.nucleo.NodoXML;

public abstract class ConstructorPerfil
{
	public static final String CLASE = "Perfil";

	private static boolean puedeSerConstruido(NodoXML nodo)
	{
		return nodo.nombre().equals("objeto") &&
				nodo.obtenerValorAtributo("clase").equals(CLASE);
	}

	public static Perfil construir(NodoXML nodoObjetoPerfil)
	{
		if (!puedeSerConstruido(nodoObjetoPerfil)) return null;

		List<NodoXML> tablaValores = nodoObjetoPerfil.obtenerHijos();

		String sexo = "";
		String hobby = "";
		String cabello = "";
		String senia = "";
		String vehiculo = "";

		for (NodoXML nodo : tablaValores)
		{
			if (nodo.nombre().equals("campo"))
				{
					String valor = nodo.obtenerValorAtributo("nombre");
					if (valor.equals("sexo"))
						sexo = (String)ConstructorPrimitivos.construir(nodo.obtenerPrimogenito());
					else if (valor.equals("hobby"))
						hobby = (String)ConstructorPrimitivos.construir(nodo.obtenerPrimogenito());
					else if (valor.equals("cabello"))
						cabello = (String)ConstructorPrimitivos.construir(nodo.obtenerPrimogenito());
					else if (valor.equals("senia"))
						senia = (String)ConstructorPrimitivos.construir(nodo.obtenerPrimogenito());
					else if (valor.equals("vehiculo"))
						vehiculo = (String)ConstructorPrimitivos.construir(nodo.obtenerPrimogenito());
				}
		}

		return new Perfil(sexo, hobby, cabello, senia, vehiculo);
	}
}
